class Solution {
public:
    int countValidSelections(vector<int>& nums) {
        int sum=reduce(nums.begin(), nums.end()); //求和
        int ans=0, pre=0; //前缀和
        for(int x:nums)
            if(x) pre+=x;
            else ans+=max(2-abs((pre<<1)-sum), 0); //当前这个位置作为起始位置?前缀和==后缀和 +2 :前缀和和后缀和差1->在边界 +1 否则不能是起始位置
                
        return ans;
    }
};